package data_structure;

public class leetcode_0006 {
    public String convert(String s, int numRows) {
        int len=s.length();
        if(len==1||numRows==1) return s;
        int lie=(len/(2*numRows-2)+1)*(numRows-1);
        char[][] dp=new char[numRows][lie];
        int flag=0;
        for(int i=0;i<numRows;++i){
            for(int j=0;j<lie;++j){
                dp[i][j]='0';
            }
        }
        for(int i=0;i<len/(2*numRows-2)+1;++i){

            for(int j=0;j<numRows;++j){
                if(flag>=len) break;
                dp[j][i*(numRows-1)]=s.charAt(flag);
                flag++;
            }
            int j=numRows-2;
            int k=i*(numRows-1)+1;
            while(j>0){
                if(flag>=len) break;
                dp[j][k]=s.charAt(flag);
                flag++;j--;k++;
            }
        }
        String result="";
        for(int i=0;i<numRows;++i){
            for(int j=0;j<lie;++j){
                if(dp[i][j]!='0') result+=dp[i][j];
            }
        }
        return result;
    }
}
